package tack11;

public class SuperArray {
    private Object[] objects = new Object[0];

    /**
     * 增加元素到数组中
     *
     * @param value
     */
    public void add(Object value) {
        Object[] newObjects = new Object[objects.length + 1];
        for (int i = 0; i < objects.length; i++) {
            newObjects[i] = objects[i];
        }
        newObjects[newObjects.length - 1] = value;
        objects = newObjects;
    }

    /**
     * 删除指定下标的元素
     *
     * @param index
     */
    public void remove(int index) {
        Object[] newObjects = new Object[objects.length - 1];
        for (int i = 0; i < newObjects.length; i++) {
            if (i < index) {
                newObjects[i] = objects[i];
            } else {
                newObjects[i] = objects[i + 1];
            }
        }
        objects = newObjects;
    }

    /**
     * 根据下标获取指定元素
     *
     * @param index
     * @return
     */
    public Object get(int index) {
        return objects[index];
    }

    /**
     * 获取数组长度
     *
     * @return
     */
    public int size() {
        return objects.length;
    }

    public static void main(String[] args) {
        SuperArray ary = new SuperArray();
        ary.add(123);
        ary.add(456);
        ary.add(789);
        ary.remove(0);
        for (int i = 0; i < ary.size(); i++) {
            System.out.println(ary.get(i));

        }
    }

    public Object[] getObjects() {
        return objects;
    }

    public void setObjects(Object[] objects) {
        this.objects = objects;
    }
}
